import matplotlib.pyplot as plt
import numpy as np
"""
中文显示工具函数
"""
def set_ch():
    from pylab import mpl
    mpl.rcParams['font.sans-serif']=['FangSong']
    mpl.rcParams['axes.unicode_minus']=False
set_ch()

def show(ori_func, ft, sampling_period = 5):
    n = len(ori_func)
    interval = sampling_period / n
    # 绘制原始函数
    plt.subplot(2, 1, 1)
    plt.plot(np.arange(0, sampling_period, interval), ori_func, 'black')
    plt.xlabel('时间'), plt.ylabel('振幅')
    plt.title('原始信号')
    # 绘制变换后的函数
    plt.subplot(2,1,2)
    frequency = np.arange(n / 2) / (n * interval)
    nfft = abs(ft[range(int(n / 2))] / n )
    plt.plot(frequency, nfft, 'red')
    plt.xlabel('频率 (Hz)'), plt.ylabel('频率谱')
    plt.title('傅里叶变换结果')
    plt.show()

# 生成频率为 1（角速度为 2 * pi）的正弦波
time = np.arange(0, 5, .005)
x = np.sin(2 * np.pi * 1 * time)
y = np.fft.fft(x)
show(x, y)
